package main

import (
	"math"
	"strings"
	"fmt"
)

func BinaryFormat(n int32) string {
	a := uint32(n)
	sb := strings.Builder{}
	c := uint32(math.Pow(2, 31))  // 最高位为1，其余为0，作为基准值
	for i := 0; i < 32; i++ {
		if a&c != 0 {
			sb.WriteString("1")
		} else {
			sb.WriteString("0")
		}
		c >>= 1 // 往右移一位, 每次作与操作时实际只有当前为1的位置起作用
	}
	return sb.String()
}


func main() {
	var a = BinaryFormat(30)
	fmt.Printf("%s\n", a)
	var b = BinaryFormat(-30)
	fmt.Printf("%s", b)
}